Spring Boot 默认使用 Logback 组件作为日志管理。Logback 是由 log4j 创始人设计的一个开源日志组件。
  在 Spring Boot 项目中我们不需要额外的添加 Logback 的依赖,因为 spring-boot-starter 或者 spring-boot-starter-web 中已经包含了 Logback 的依赖。

1、Logback 读取配置文件

  • 在 classpath 下查找文件 logback-test.xml
  • 如果文件不存在,则查找 logback.xml
  • 如果两个文件都不存在,LogBack 用 BasicConfiguration 自动对自己进行最小化配置,这样既实现了上面我们不需要添加任何配置就可以输出到控制台日志信息。
    在这里插入图片描述

    2、添加 Logback 配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
    <!-- 定义日志文件的存储地址 勿在 Logback 的配置中使用相对路径 -->
    <property name="LOG_HOME" value="${catalina.base}/logs"/>
    <!-- 控制台输出 -->
    <appender name="CONSOLE-LOG" class="ch.qos.logback.core.ConsoleAppender">
    <!-- 日志输出编码 -->
    <layout class="ch.qos.logback.classic.PatternLayout">
    <!-- 格式化输出 -->
    <pattern>[%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
    </layout>
    </appender>
    <!--获取比info级别高(包括info级别)但除error级别的日志-->
    <appender name="INFO-LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
    <pattern>[%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
    </layout>
    <!--滚动策略-->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <!--路径-->
    <fileNamePattern>${LOG_HOME}/%d.log</fileNamePattern>
    <!-- 保留日志的天数 -->
    <maxHistory>30</maxHistory>
    </rollingPolicy>
    </appender>
    <!-- 日志输出级别 -->
    <root level="info">
    <appender-ref ref="CONSOLE-LOG" />
    <appender-ref ref="INFO-LOG" />
    </root>
    </configuration>

3、在代码中使用Logback

1
2
3
4
5
6
7
8
9
10
@Controller
@RequestMapping("/logback")
public class HelloController {
private final static Logger logger = LoggerFactory.getLogger(HelloController.class);
@RequestMapping("showInfo")
public String showInfo(){
logger.info("记录日志");
return "Hello Logback";
}
}

4、在配置文件中屏蔽指定包的

在logging.level后面加上要屏蔽的包名。

1
logging.level.com.xiezhenyu=off